package com.bee.gateway.service;

import com.bee.gateway.common.domain.IgnoreAuthDO;
import com.bee.gateway.common.vo.IgnoreAuthQueryVO;

import java.util.List;

/**
 * 忽略鉴权配置
 * @author Damin.yang
 * @date 2019/07/27 23:26
 */
public interface IgnoreAuthService {

    /**
     * 添加忽略路径
     * @param ignoreAuthDO
     * @return
     */
    int insert(IgnoreAuthDO ignoreAuthDO);

    /**
     * 获取忽略路径
     * @param id
     * @return
     */
    IgnoreAuthDO get(long id);

    /**
     * 查询忽略路径
     * @param queryVO
     * @return
     */
    List<IgnoreAuthDO> query(IgnoreAuthQueryVO queryVO);

    /**
     * 更新忽略路径信息
     * @param ignoreAuthDO
     */
    void update(IgnoreAuthDO ignoreAuthDO);

    /**
     * 根据id删除忽略路径
     * @param id
     */
    void delete(long id);

    /**
     * 重新加载忽略路径配置到redis
     * @return 成功返回true
     */
    void overload();

    /**
     * 初始化所有忽略路径到缓存
     */
    void cacheAllIgnoreAuth();
}
